1. Technical Field
The present invention relates to data processing systems and, in particular, to monitoring resources in a network data processing system. Still more particularly, the present invention provides a method, apparatus, and program for modeling composite resources in a network data processing system.
2. Description of Related Art
The process of provisioning resources can be very complex and may vary in many different aspects. The provisioning processes for each resource type may be different. Monitors are resources that provide information about other resources. For example, a monitor may be used to determine whether a switch is functional. A server may use a monitor to determine whether server resources are exhausted. Metering monitors are deployed on resources such that billing systems may use the monitored data created and collected.
Resource models provide good monitoring capability and metrics on systems and applications. However, resource models are based upon an assumption that the monitor is operating on a discrete and separate system. Computers are often aggregated into clusters or grids. Clustering refers to using two or more computer systems that work together. The term “cluster” generally refers to multiple servers that are linked together in order to handle variable workloads or to provide continued operation in the event one fails.
Individual computers, as well as clusters of computers, may belong to a grid. In fact, grids are often thought of as clusters of clusters. Grid computing is the sharing of central processing unit (CPU) resources across a network so that a plurality of machines function as one large supercomputer. Grid computing, also referred to as peer-to-peer computing or distributed computing, allows unused CPU capacity in any of the machines to be allocated to the total processing job required.
In a large enterprise, hundreds or thousands of desktop machines may be sitting idle at any given moment. A CPU may be considered idle even when a user is reading the screen and not interacting with the machine. Other computing resources may be idle at various times of the day. For instance, a cluster of database servers, or a subset thereof, may be unused during non-business hours, for example during the middle of the night. Case in point, during peek business hours in New York City, most people are likely to be asleep in India. Therefore, at any time of the day there may be unused processing cycles that could be put to use on large computational problems.
When resources, such as computers or applications, are aggregated into clusters or grids, the nature of the information that is reported by resource monitors may be interpreted in a different manner, because the resource being monitored is now part of a cooperative environment and need to be treated as such. For example, suppose a processor fails in a multiprocessing system with four processors and that multiprocessing system is one of four servers in a cluster, wherein each server is a multiprocessing system with four processors. When the failure of the processor is reported by the resource monitor, the meaning of this information is very different when considered with respect to the cluster rather than the individual server. For an individual computer, the processor failure represents a failure of one fourth of the CPU resources; however, for the cluster, the processor failure represents a failure of only one sixteenth of the CPU resources.